package com.kingyun.gpsinspection.purificationservice.facade.service.iam.scyx;

import com.alibaba.fastjson.JSONObject;
import com.kingyun.gpsinspection.purificationservice.facade.model.iam.scyx.DeviceSumInfo;
import com.kingyun.gpsinspection.purificationservice.facade.model.iam.scyx.DeviceSumInfoVo;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.util.List;

/**
 * Created by yangsy on 2016/12/7.
 */
public interface DeviceSumInfoService {
    /**
     * 查询操作，针对单个台账
     * @param deviceSumId
     * @return
     */
    DeviceSumInfo selectByPrimaryKey(String deviceSumId);

    /**
     * 查询操作 列表
     * @param deviceSumInfo
     * @return
     */
    JSONObject list(DeviceSumInfo deviceSumInfo);

    /**
     * 根据台账模板Id,实例化相关的表数据
     * @param deviceSumTempId
     * @return
     */
    int insertSelective(String deviceSumTempId);

    /**
     * 查询当前台账下面的所有子类型信息
     * @param deviceSumId 台账Id
     * @return
     */
    List<DeviceSumInfoVo> deviceSumSubTypeInfo(String deviceSumId);

    /**
     * 查询 台账 单个子类型的信息
     * @param deviceSumInfoVo
     * @param queryDeviceTitle 是否需要查询台账表头信息
     * @param queryDeviceContent 是否需要查询台账内容信息
     * @return
     */
    //DeviceSumInfoVo getDeviceSumInfoVo(DeviceSumInfoVo deviceSumInfoVo,boolean queryDeviceTitle,boolean queryDeviceContent);


    /**
     * 导出功能
     * @param deviceSumId 设备台账id
     * @return
     */
     void carateWb(HSSFWorkbook wb, String deviceSumId);

    /**
     * 台账表头数据
     * @param deviceSumInfoVo
     * @return
     */
    Object getDeviceTitle(DeviceSumInfoVo deviceSumInfoVo);

    /**
     * 台账内容数据
     * @param deviceSumInfoVo
     * @return
     */
    JSONObject getDeviceContent(DeviceSumInfoVo deviceSumInfoVo);

    /**
     * 台账数据
     * @param deviceSumId
     * @return
     */
    JSONObject getExcelData(String deviceSumId);
}
